package com.softserveinc.edu.oms.persistence.dao;

import java.util.List;

import org.hibernate.criterion.Criterion;

import com.softserveinc.edu.oms.persistence.AbstractEntity;

public interface Dao<T extends AbstractEntity> {
	public List<T> findAll();

	public T findByID(final Integer id);

	public List<T> findByCriterions(final Criterion... criterions);

	public List<T> findByOneOfCriterions(final Criterion... criterions);

	public T insertOrUpdate(final T entity);

	public void delete(final T entity);
}
